package com.bbzn.user.client.utils;

import com.alibaba.fastjson.JSONObject;
import com.bbzn.user.client.enums.ResultEnum;
import lombok.Data;
import org.springframework.stereotype.Component;

@Data
@Component
public class BaseApiService<T> {

	public  BaseResponse<T> setResultError(Integer code, String msg) {
		return setResult(code, msg, (T)new JSONObject());
	}

	// 返回错误，可以传msg
	public  BaseResponse<T> setResultError(String msg) {
		return setResult(ResultEnum.HTTP_RES_1.getCode(), msg,(T)new JSONObject());
	}

	// 返回成功，可以传data值
	public  BaseResponse<T> setResultSuccess(T data) {
		return setResult(ResultEnum.HTTP_RES_0.getCode(), ResultEnum.HTTP_RES_0.getMsg(), data);
	}

	// 返回成功，沒有data值
	public  BaseResponse<T> setResultSuccess() {
		return setResult(ResultEnum.HTTP_RES_0.getCode(), ResultEnum.HTTP_RES_0.getMsg(), (T)new JSONObject());
	}

	// 返回成功，沒有data值
	public  BaseResponse<T> setResultSuccess(String msg) {
		return setResult(ResultEnum.HTTP_RES_0.getCode(), msg, null);
	}

	// 返回成功，带msg和data值
	public  BaseResponse<T> setResultSuccess(String msg,T data) {
		return setResult(ResultEnum.HTTP_RES_0.getCode(), msg, data);
	}

	// 通用封装
	public  BaseResponse<T> setResult(Integer code, String msg, T data) {
		return new  BaseResponse<T>(code, msg, data);
	}

	//调用数据库封装
	public Boolean toDaoResult(int result){
		return result>0?true:false;
	}

}